finp$="picture.jpg"

fout$=finp$+".bin"
dim paleta[256]
paleta[0x00]=0x000000:paleta[0x01]=0x800000:paleta[0x02]=0x008000:paleta[0x03]=0x808000
paleta[0x04]=0x000080:paleta[0x05]=0x400040:paleta[0x06]=0x408080:paleta[0x07]=0x808080
paleta[0x08]=0x606060:paleta[0x09]=0x008080:paleta[0x0A]=0x800080:paleta[0x0B]=0x000040
paleta[0x0C]=0x808040:paleta[0x0D]=0x408040:paleta[0x0E]=0x804000:paleta[0x0F]=0x404040
paleta[0x10]=0x800000:paleta[0x11]=0xFF0000:paleta[0x12]=0x808000:paleta[0x13]=0xFF8000
paleta[0x14]=0x800080:paleta[0x15]=0xBF0040:paleta[0x16]=0xBF8080:paleta[0x17]=0xFF8080
paleta[0x18]=0xE06060:paleta[0x19]=0x808080:paleta[0x1A]=0xFF0080:paleta[0x1B]=0x800040
paleta[0x1C]=0xFF8040:paleta[0x1D]=0xBF8040:paleta[0x1E]=0xFF4000:paleta[0x1F]=0xBF4040
paleta[0x20]=0x008000:paleta[0x21]=0x808000:paleta[0x22]=0x00FF00:paleta[0x23]=0x80FF00
paleta[0x24]=0x008080:paleta[0x25]=0x408040:paleta[0x26]=0x40FF80:paleta[0x27]=0x80FF80
paleta[0x28]=0x60E060:paleta[0x29]=0x00FF80:paleta[0x2A]=0x808080:paleta[0x2B]=0x008040
paleta[0x2C]=0x80FF40:paleta[0x2D]=0x40FF40:paleta[0x2E]=0x80BF00:paleta[0x2F]=0x40BF40
paleta[0x30]=0x808000:paleta[0x31]=0xFF8000:paleta[0x32]=0x80FF00:paleta[0x33]=0xFFFF00
paleta[0x34]=0x808080:paleta[0x35]=0xBF8040:paleta[0x36]=0xBFFF80:paleta[0x37]=0xFFFF80
paleta[0x38]=0xE0E060:paleta[0x39]=0x80FF80:paleta[0x3A]=0xFF8080:paleta[0x3B]=0x808040
paleta[0x3C]=0xFFFF40:paleta[0x3D]=0xBFFF40:paleta[0x3E]=0xFFBF00:paleta[0x3F]=0xBFBF40
paleta[0x40]=0x000080:paleta[0x41]=0x800080:paleta[0x42]=0x008080:paleta[0x43]=0x808080
paleta[0x44]=0x0000FF:paleta[0x45]=0x4000BF:paleta[0x46]=0x4080FF:paleta[0x47]=0x8080FF
paleta[0x48]=0x6060E0:paleta[0x49]=0x0080FF:paleta[0x4A]=0x8000FF:paleta[0x4B]=0x0000BF
paleta[0x4C]=0x8080BF:paleta[0x4D]=0x4080BF:paleta[0x4E]=0x804080:paleta[0x4F]=0x4040BF
paleta[0x50]=0x400040:paleta[0x51]=0xBF0040:paleta[0x52]=0x408040:paleta[0x53]=0xBF8040
paleta[0x54]=0x4000BF:paleta[0x55]=0x7F007F:paleta[0x56]=0x7F80BF:paleta[0x57]=0xBF80BF
paleta[0x58]=0xA060A0:paleta[0x59]=0x4080BF:paleta[0x5A]=0xBF00BF:paleta[0x5B]=0x40007F
paleta[0x5C]=0xBF807F:paleta[0x5D]=0x7F807F:paleta[0x5E]=0xBF4040:paleta[0x5F]=0x7F407F
paleta[0x60]=0x408080:paleta[0x61]=0xBF8080:paleta[0x62]=0x40FF80:paleta[0x63]=0xBFFF80
paleta[0x64]=0x4080FF:paleta[0x65]=0x7F80BF:paleta[0x66]=0x7FFFFF:paleta[0x67]=0xBFFFFF
paleta[0x68]=0xA0E0E0:paleta[0x69]=0x40FFFF:paleta[0x6A]=0xBF80FF:paleta[0x6B]=0x4080BF
paleta[0x6C]=0xBFFFBF:paleta[0x6D]=0x7FFFBF:paleta[0x6E]=0xBFBF80:paleta[0x6F]=0x7FBFBF
paleta[0x70]=0x808080:paleta[0x71]=0xFF8080:paleta[0x72]=0x80FF80:paleta[0x73]=0xFFFF80
paleta[0x74]=0x8080FF:paleta[0x75]=0xBF80BF:paleta[0x76]=0xBFFFFF:paleta[0x77]=0xFFFFFF
paleta[0x78]=0xE0E0E0:paleta[0x79]=0x80FFFF:paleta[0x7A]=0xFF80FF:paleta[0x7B]=0x8080BF
paleta[0x7C]=0xFFFFBF:paleta[0x7D]=0xBFFFBF:paleta[0x7E]=0xFFBF80:paleta[0x7F]=0xBFBFBF
paleta[0x80]=0x606060:paleta[0x81]=0xE06060:paleta[0x82]=0x60E060:paleta[0x83]=0xE0E060
paleta[0x84]=0x6060E0:paleta[0x85]=0xA060A0:paleta[0x86]=0xA0E0E0:paleta[0x87]=0xE0E0E0
paleta[0x88]=0xC0C0C0:paleta[0x89]=0x60E0E0:paleta[0x8A]=0xE060E0:paleta[0x8B]=0x6060A0
paleta[0x8C]=0xE0E0A0:paleta[0x8D]=0xA0E0A0:paleta[0x8E]=0xE0A060:paleta[0x8F]=0xA0A0A0
paleta[0x90]=0x008080:paleta[0x91]=0x808080:paleta[0x92]=0x00FF80:paleta[0x93]=0x80FF80
paleta[0x94]=0x0080FF:paleta[0x95]=0x4080BF:paleta[0x96]=0x40FFFF:paleta[0x97]=0x80FFFF
paleta[0x98]=0x60E0E0:paleta[0x99]=0x00FFFF:paleta[0x9A]=0x8080FF:paleta[0x9B]=0x0080BF
paleta[0x9C]=0x80FFBF:paleta[0x9D]=0x40FFBF:paleta[0x9E]=0x80BF80:paleta[0x9F]=0x40BFBF
paleta[0xA0]=0x800080:paleta[0xA1]=0xFF0080:paleta[0xA2]=0x808080:paleta[0xA3]=0xFF8080
paleta[0xA4]=0x8000FF:paleta[0xA5]=0xBF00BF:paleta[0xA6]=0xBF80FF:paleta[0xA7]=0xFF80FF
paleta[0xA8]=0xE060E0:paleta[0xA9]=0x8080FF:paleta[0xAA]=0xFF00FF:paleta[0xAB]=0x8000BF
paleta[0xAC]=0xFF80BF:paleta[0xAD]=0xBF80BF:paleta[0xAE]=0xFF4080:paleta[0xAF]=0xBF40BF
paleta[0xB0]=0x000040:paleta[0xB1]=0x800040:paleta[0xB2]=0x008040:paleta[0xB3]=0x808040
paleta[0xB4]=0x0000BF:paleta[0xB5]=0x40007F:paleta[0xB6]=0x4080BF:paleta[0xB7]=0x8080BF
paleta[0xB8]=0x6060A0:paleta[0xB9]=0x0080BF:paleta[0xBA]=0x8000BF:paleta[0xBB]=0x00007F
paleta[0xBC]=0x80807F:paleta[0xBD]=0x40807F:paleta[0xBE]=0x804040:paleta[0xBF]=0x40407F
paleta[0xC0]=0x808040:paleta[0xC1]=0xFF8040:paleta[0xC2]=0x80FF40:paleta[0xC3]=0xFFFF40
paleta[0xC4]=0x8080BF:paleta[0xC5]=0xBF807F:paleta[0xC6]=0xBFFFBF:paleta[0xC7]=0xFFFFBF
paleta[0xC8]=0xE0E0A0:paleta[0xC9]=0x80FFBF:paleta[0xCA]=0xFF80BF:paleta[0xCB]=0x80807F
paleta[0xCC]=0xFFFF7F:paleta[0xCD]=0xBFFF7F:paleta[0xCE]=0xFFBF40:paleta[0xCF]=0xBFBF7F
paleta[0xD0]=0x408040:paleta[0xD1]=0xBF8040:paleta[0xD2]=0x40FF40:paleta[0xD3]=0xBFFF40
paleta[0xD4]=0x4080BF:paleta[0xD5]=0x7F807F:paleta[0xD6]=0x7FFFBF:paleta[0xD7]=0xBFFFBF
paleta[0xD8]=0xA0E0A0:paleta[0xD9]=0x40FFBF:paleta[0xDA]=0xBF80BF:paleta[0xDB]=0x40807F
paleta[0xDC]=0xBFFF7F:paleta[0xDD]=0x7FFF7F:paleta[0xDE]=0xBFBF40:paleta[0xDF]=0x7FBF7F
paleta[0xE0]=0x804000:paleta[0xE1]=0xFF4000:paleta[0xE2]=0x80BF00:paleta[0xE3]=0xFFBF00
paleta[0xE4]=0x804080:paleta[0xE5]=0xBF4040:paleta[0xE6]=0xBFBF80:paleta[0xE7]=0xFFBF80
paleta[0xE8]=0xE0A060:paleta[0xE9]=0x80BF80:paleta[0xEA]=0xFF4080:paleta[0xEB]=0x804040
paleta[0xEC]=0xFFBF40:paleta[0xED]=0xBFBF40:paleta[0xEE]=0xFF7F00:paleta[0xEF]=0xBF7F40
paleta[0xF0]=0x404040:paleta[0xF1]=0xBF4040:paleta[0xF2]=0x40BF40:paleta[0xF3]=0xBFBF40
paleta[0xF4]=0x4040BF:paleta[0xF5]=0x7F407F:paleta[0xF6]=0x7FBFBF:paleta[0xF7]=0xBFBFBF
paleta[0xF8]=0xA0A0A0:paleta[0xF9]=0x40BFBF:paleta[0xFA]=0xBF40BF:paleta[0xFB]=0x40407F
paleta[0xFC]=0xBFBF7F:paleta[0xFD]=0x7FBF7F:paleta[0xFE]=0xBF7F40:paleta[0xFF]=0x7F7F7F

function colourdist(chx1,chx2):
  tchx1=chx1:tchx2=chx2
  b1=tchx1 mod 256:tchx1=int(tchx1/256)
  g1=tchx1 mod 256:tchx1=int(tchx1/256)
  r1=tchx1 mod 256
  b2=tchx2 mod 256:tchx2=int(tchx2/256)
  g2=tchx2 mod 256:tchx2=int(tchx2/256)
  r2=tchx2 mod 256
  rdist=abs(r2-r1):gdist=abs(g2-g1):bdist=abs(b2-b1)
  return (sqr((rdist^2)+(gdist^2)+(bdist^2)))
  end function

setdisplay(128,128,32,1):paper(8^8-1):ink(0):pen(0):cls:loadimage(finp$,1):pasteicon(0,0,1)

open fout$ for output as #1
for c=0 to 959:writebyte(1,0x86):next
for c=0 to 63:writebyte(1,0):next
for y=0 to 23
  for x=0 to 39
    u=point(x,y):ddst=999:idflg=0
    for c=0 to 255
      cdst=colourdist(point(x,y),paleta[c])
      if cdst<ddst then:ddst=cdst:idflg=c:end if
      next
    writebyte(1,idflg)
    next:next

close #1

 

